A memory controller is used for managing access of data in a memory. In some cases, the memory controller can be integrated into a processor. In such examples, the memory controller is referred to as a host-side memory controller. The host-side memory controller is used to perform various memory access functions, including address mapping, buffering and scheduling of commands, ordering of commands, and controlling of timing of signals to and from the memory.
The interconnect between the host-side memory controller and the memory is often bus-based, in which a memory bus is connected between the host-side memory controller and the memory. The memory controller acts as the master to orchestrate communication between the host-side memory controller and the memory.